﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Data;

namespace SGCP_UI
{
    public partial class MasterPage : System.Web.UI.MasterPage, ICallbackEventHandler
    {
        localhost.Service obj;
       
        

        protected void Page_Load(object sender, EventArgs e)
        {
            obj = new localhost.Service();
            String cbReference =
            Page.ClientScript.GetCallbackEventReference(this,
            "arg", "script_loginDatos", "context");
            String callbackScript;
            callbackScript = "function llamarServidor(arg, context)" +
                "{ " + cbReference + ";}";
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
                "llamarServidor", callbackScript, true);

        }

        private string _callbackArgument;

        public string GetCallbackResult()
        {
            return _callbackArgument;
        }

        public void RaiseCallbackEvent(string eventArgument)
        {

            try
            {
                string[] vector;
                vector = new string[4];
                vector = separarArgumentos(eventArgument);

                Label lbl = new Label();
                Label Nombres = new Label();
                Label usuario = new Label();
                Label IdPerfil = new Label();
                Label PerfilDescripcion = new Label();

                if (vector[0] == "loginDatos")
                {
                    DataSet ds = new DataSet();
                    if ((ds = Logear(vector)) != null)
                    {

                        Nombres.Text = ds.Tables[0].Rows[0].ItemArray[0].ToString();
                        usuario.Text = ds.Tables[0].Rows[0].ItemArray[1].ToString();
                        IdPerfil.Text = ds.Tables[0].Rows[0].ItemArray[2].ToString();
                        PerfilDescripcion.Text = ds.Tables[0].Rows[0].ItemArray[3].ToString();

                        Session["Nombres"] = Nombres.Text;
                        Session["Usuario"] = usuario.Text;
                        Session["IdPerfil"] = IdPerfil.Text;
                        Session["PerfilDescripcion"] = PerfilDescripcion.Text;
                        Label1.Text = "logueado";


                        StringWriter sr = new StringWriter();
                        HtmlTextWriter htm = new HtmlTextWriter(sr);
                        Label1.RenderControl(htm);
                        Nombres.RenderControl(htm);
                        usuario.RenderControl(htm);
                        IdPerfil.RenderControl(htm);
                        PerfilDescripcion.RenderControl(htm);
                        htm.Flush();
                        _callbackArgument = sr.ToString();


                    }
                    else
                    {
                        Label1.Text = "Verifique su usuario y contraseña";
                        StringWriter sr = new StringWriter();
                        HtmlTextWriter htm = new HtmlTextWriter(sr);
                        Label1.RenderControl(htm);
                        htm.Flush();
                        _callbackArgument = sr.ToString();
                    }



                }

                if (vector[0] == "cargarMenu")
                {

                    DataSet ds = new DataSet();
                    int n = 0;
                    if ((ds = cargarMenu(vector)) != null)
                    {
                        Label menu = new Label();
                        Label1.Text = "menuCargado";


                        foreach (DataTable table in ds.Tables)
                        {
                            foreach (DataRow row in table.Rows)
                            {
                                foreach (DataColumn column in table.Columns)
                                {
                                    if (n == 0)
                                    {
                                        menu.Text += row[column].ToString();
                                        n = 1;
                                    }
                                    else
                                    {
                                        menu.Text += "#";
                                        menu.Text += row[column].ToString();
                                    }
                                    //Label1.Text += "%" + row[column].ToString();
                                    /*
                                    if (n == 0)
                                    {
                                        menu.Text += "<li><a href=" + row[column].ToString() + ">";
                                        n = 1;
                                    }
                                    else
                                    {
                                        menu.Text += row[column].ToString() + "</a></li>";
                                        n = 0;
                                    }*/
                                }
                            }
                        }

                        menu.Text += "#" + "wfr_SessionFinalizada.aspx" + "#" + "Salir";

                        //Session["menu"] = menu.Text;

                        //menu.Text = "¡¡¿¿¿¿¿¿";
                        //menu.Text += "<li><a href='#4' title='Cambia tu contraseña actual'>Cambiar Contraseña</a></li> <li><a href='wfr_Index.aspx' title='Salir del sistema y volver a la pagina inicial'>Salir</a></li>";


                        // menu.Text = "<li><a href=" + ds.Tables[0].Rows[0].ItemArray[1].ToString() + " title='Registra, actualiza, consulta y elimina las citas de los pacientes'>" + ds.Tables[0].Rows[0].ItemArray[0].ToString() + "</a></li>";

                        StringWriter sr = new StringWriter();
                        HtmlTextWriter htm = new HtmlTextWriter(sr);
                        Label1.RenderControl(htm);
                        menu.RenderControl(htm);
                        htm.Flush();
                        _callbackArgument = sr.ToString();

                        /*int n = 1;
                        int item = 0;
                        int fila;
                        while (n == 1)
                        {
                            
                            
                            if (ds.Tables[0].Rows[0].ItemArray[0].ToString() != null)
                            {

                            }
                            else
                            {
                                n = 0;
                            }
                        }*/
                    }
                    else
                    {
                        Label1.Text = "Aun no se le ha asignado un menu, consulte con el administrador";
                        StringWriter sr = new StringWriter();
                        HtmlTextWriter htm = new HtmlTextWriter(sr);
                        Label1.RenderControl(htm);
                        htm.Flush();
                        _callbackArgument = sr.ToString();
                    }
                }


            }
            catch (Exception ex)
            {
                Label1.Text = ex.Message;
                StringWriter sr = new StringWriter();
                HtmlTextWriter htm = new HtmlTextWriter(sr);
                Label1.RenderControl(htm);
                htm.Flush();
                _callbackArgument = sr.ToString();
            }
        }

        public DataSet Logear(string[] vector1)
        {
            
            localhost.dtoUsuario usuario = new localhost.dtoUsuario();

            usuario.usuario = vector1[1];
            usuario.contraseña = vector1[2];

           // obj.LoginUsuarios(usuario);
            
           return obj.Login(usuario) ;

        }

      
        public DataSet cargarMenu(string[] vector1)
        {
            localhost.dtoUsuario usuario = new localhost.dtoUsuario();
           
            usuario.usuario = vector1[1];
            return obj.cargarMenu(usuario);
       

        }

        public static string[] separarArgumentos(string parametro)
        {
            string todoJunto = parametro.ToString();
            string[] vector;
            vector = new string[4];
            int contador = 0;
            for (int i = 0; i < todoJunto.Length; i++)
            {
                if (todoJunto[i].ToString() != "$")
                {
                    vector[contador] += todoJunto[i].ToString();
                }
                else
                {
                    contador++;
                }

            }
            return vector;
        }

        public string crearMenu()
        {
            string menu = "";
            /*int n=1;
            while (n == 1)
            {
                if(
            }*/

            menu = "<li><a href='wfr_AdministrarCitas.aspx' title='Registra, actualiza, consulta y elimina las citas de los pacientes'>Administrar Citaaaaaas</a></li>";


            return menu;
        }
    }
}